AbstractOneToManyEngine.java
package org.codefilarete.stalactite.engine.runtime.onetomany;
import java.util.Collection;
import org.codefilarete.stalactite.engine.configurer.onetomany.FirstPhaseCycleLoadListener;
import org.codefilarete.stalactite.engine.runtime.ConfiguredRelationalPersister;
/**
* @author Guillaume Mary
*/
public abstract class AbstractOneToManyEngine<SRC, TRGT, SRCID, TRGTID, C extends Collection<TRGT>> {
public static final int INDEXED_COLLECTION_FIRST_INDEX_VALUE = 1;
protected final ConfiguredRelationalPersister<SRC, SRCID> sourcePersister;
protected final ConfiguredRelationalPersister<TRGT, TRGTID> targetPersister;
protected final ManyRelationDescriptor<SRC, TRGT, C> manyRelationDescriptor;
public AbstractOneToManyEngine(ConfiguredRelationalPersister<SRC, SRCID> sourcePersister,
ConfiguredRelationalPersister<TRGT, TRGTID> targetPersister,
ManyRelationDescriptor<SRC, TRGT, C> manyRelationDescriptor) {
this.sourcePersister = sourcePersister;
this.targetPersister = targetPersister;
this.manyRelationDescriptor = manyRelationDescriptor;
}
public abstract void addSelectCascadeIn2Phases(FirstPhaseCycleLoadListener<SRC, TRGTID> firstPhaseCycleLoadListener);
public abstract String addSelectCascade(boolean loadSeparately);
public abstract void addInsertCascade(ConfiguredRelationalPersister<TRGT, TRGTID> targetPersister);
public abstract void addUpdateCascade(ConfiguredRelationalPersister<TRGT, TRGTID> targetPersister);
public abstract void addDeleteCascade(ConfiguredRelationalPersister<TRGT, TRGTID> targetPersister);
public ManyRelationDescriptor<SRC, TRGT, C> getManyRelationDescriptor() {
return manyRelationDescriptor;
}
}